#ifndef _SPISERVICE_NETWORK_SERVICEINTERFACE_SPIDEV_SPIDEVSTUB_H_
#define _SPISERVICE_NETWORK_SERVICEINTERFACE_SPIDEV_SPIDEVSTUB_H_

#include "Spi_Dev_Management/ISpi_Dev.h"

class Spi_Dev_Stub : public ISpi_Dev
{
public:
    Spi_Dev_Stub(const std::string& id);
    ~Spi_Dev_Stub()  override = default;

    bool open_dev() override;
    bool init_dev(uint32_t speed, uint16_t mode, uint8_t bits, uint16_t delay, bool verbose = false) override;
    void close_dev() override;

    bool send_msg() override;
    bool recv_msg() override;
    bool transfer(uint8_t const *tx, uint8_t const *rx, size_t len) override;
    const std::string& node_name() const
    {
        return its_id;
    }

private:
    bool handle_maxieye_test(uint8_t const *tx, uint8_t const *rx, size_t len);
    bool verify_Struct_EHR_SPI_Out_SOC_T(uint8_t const *tx);

    std::string its_id;
};

#endif